package com.gtc.zsk.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gtc.zsk.model.dto.questionBankQuestion.QuestionBankQuestionQueryRequest;
import com.gtc.zsk.model.dto.vipBankUser.VipBankUserQueryRequest;
import com.gtc.zsk.model.entity.QuestionBankQuestion;
import com.gtc.zsk.model.entity.VipBankUser;
import com.gtc.zsk.model.vo.QuestionBankQuestionVO;
import com.gtc.zsk.model.vo.VipBankUserVO;

import javax.servlet.http.HttpServletRequest;

/**
* @author 16153
* @description 针对表【vip_bank_user(vip题库用户)】的数据库操作Service
* @createDate 2025-01-24 20:03:22
*/
public interface VipBankUserService extends IService<VipBankUser> {

    //void validVipBankUser(VipBankUser vipBankUser, boolean add);

    void validAndAddVipBankUser(VipBankUser vipBankUser, boolean add);

    VipBankUserVO getVipBankUserVO(VipBankUser vipBankUser, HttpServletRequest request);

    QueryWrapper<VipBankUser> getQueryWrapper(VipBankUserQueryRequest vipBankUserQueryRequest);

    Page<VipBankUserVO> getVipBankUserVOPage(Page<VipBankUser> vipBankUserPage, HttpServletRequest request);

    boolean checkUserVip(long questionId, long userId);

    boolean removeAndUpdateUserVipLevel(LambdaQueryWrapper<VipBankUser> lambdaQueryWrapper, Long userId);
}
